#pragma once

namespace sol9
{

	template <typename T>
	class ISingleton
	{
	protected:
		ISingleton();
		ISingleton(const ISingleton& other);
		virtual ~ISingleton() {};

	public:
		static T* instance()
		{
			static T instance;
			return &instance;
		}
	};

} // namespace sol9